home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (C) 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
- ////////////////////////////////////////////////////////////////
- // CardView.h --
- ////////////////////////////////////////////////////////////////
- #ifndef CARDVIEW_H
- #define CARDVIEW_H
-
-
- #include "Buttons.h"
- #include "ListView.h"
-
- #include "OkImageView.h"
- #include "OkFileItem.h"
- #include "OkText.h"
- #include "OkScrolledText.h"
- #include "OkLabeledComponent.h"
- #include "OkToggleButton.h"
- #include "OkStr.h"
- #include <Vk/VkWindow.h>
- #include <Vk/VkMenu.h>
- #include <Vk/VkInfoDialog.h>
-
-
- // Control classes.
-
- class CardInfo;
- class CardView;
-
- class ActiveToggle : public OkToggleButton {
-
- private:
- int _viewerNo;
- void valueChanged(Boolean newValue);
-
- public:
- ActiveToggle( int viewerNo, Widget parent );
- ~ActiveToggle() {}
- const char* className() { return "ActiveToggle"; }
-
- int viewerNo() const { return _viewerNo; }
- };
-
-
- class FieldText : public OkText {
-
- private:
- CardView* _parentView;
-
- public:
- FieldText( const char* name, Widget parent ) : OkText( name, parent ) {}
- ~FieldText() {}
-
- void setParentView( CardView* parentView ) { _parentView = parentView; }
- void valueChanged();
- };
-
- class Notes : public OkScrolledText {
-
- private:
- CardView* _parentView;
-
- public:
- Notes( const char* name, Widget parent ) : OkScrolledText( name, parent ) {}
- ~Notes() {}
-
- void setParentView( CardView* parentView ) { _parentView = parentView; }
- void valueChanged();
- };
-
-
- class Attributes;
-
- class CardView : public VkWindow, public OkFileItem {
-
-
- public:
- CardView( int viewerNo );
- ~CardView();
- const char* className() { return "CardView"; }
-
- Boolean okToQuit();
-
- void setCardInfo( CardInfo* );
- const CardInfo* cardInfo() const { return _cardInfo; }
-
- // Set field values programmatically.
- void setCardPos( int cPos ) { _cardPos = cPos; }
-
- void setName( OkStr name ) { _nameField->t()->setValue( name ); }
- void setPhone1( OkStr phone1 ){ _phone1Field->t()->setValue( phone1 ); }
- void setPhone2( OkStr phone2 ){ _phone2Field->t()->setValue( phone2 ); }
- void setFax( OkStr fax ) { _faxField->t()->setValue( fax ); }
- void setMobilePhone( OkStr mp ){ _mobilePhoneField->t()->setValue( mp ); }
- void setEmail( OkStr email ) { _emailField->t()->setValue( email ); }
-
- void setAddressLine1( OkStr line ){ _addressLine1Field->t()->setValue(line); }
- void setAddressLine2( OkStr line ){ _addressLine2Field->t()->setValue(line); }
- void setCity( OkStr city ) { _cityField->t()->setValue( city ); }
- void setState( OkStr state ) { _stateField->t()->setValue( state ); }
- void setZip( OkStr zip ) { _zipField->t()->setValue( zip ); }
- void setCountry( OkStr country ) { _countryField->t()->setValue( country ); }
-
- void setAttributeValue( unsigned n, Boolean value );
-
- void setNotes( const char* notes ) { _notes->t()->setValue( notes ); }
-
-
- // Get field values.
- int cardPos() const { return _cardPos; }
-
- OkStr name() const { return _nameField->t()->getValue(); }
- OkStr phone1() const { return _phone1Field->t()->getValue(); }
- OkStr phone2() const { return _phone2Field->t()->getValue(); }
- OkStr fax() const { return _faxField->t()->getValue(); }
- OkStr mobilePhone() const { return _mobilePhoneField->t()->getValue(); }
- OkStr email() const { return _emailField->t()->getValue(); }
-
- OkStr addressLine1() const { return _addressLine1Field->t()->getValue(); }
- OkStr addressLine2() const { return _addressLine2Field->t()->getValue(); }
- OkStr city() const { return _cityField->t()->getValue(); }
- OkStr state() const { return _stateField->t()->getValue(); }
- OkStr zip() const { return _zipField->t()->getValue(); }
- OkStr country() const { return _countryField->t()->getValue(); }
-
- Boolean attributeValue( unsigned n ) const;
-
- const char* notes() const { return _notes->t()->getValue(); }
- void insertFromFile();
- void saveToFile();
- void clearNotes();
-
-
- // Utility Funcs.
- int viewerNo() const { return _activeToggle->viewerNo(); }
- void makeActive( Boolean );
- void hide();
- void save( Boolean redrawFace=FALSE );
-
- void saveAndDeleteCardInfo();
-
- void showFaceImg();
- void hideFaceImg();
-
- Boolean dirty() { return _dirty; }
- void clearDirty() { _dirty = FALSE; }
- void setDirty() { _dirty = TRUE; }
-
- Boolean deleteCard();
-
- Attributes* attributes() { return _attributes->t(); }
-
- void setFieldLabels();
-
- private:
-
- static VkMenuDesc mainMenuPane[];
- static VkMenuDesc cardMenuPane[];
- static VkMenuDesc notesMenuPane[];
- static VkMenuDesc cardUtilsMenuPane[];
- static VkMenuDesc cardPrefsMenuPane[];
-
- int _cardPos;
- CardInfo* _cardInfo;
-
- OkImageView* _faceImg;
-
- OkLabeledComponent<FieldText>* _nameField;
- OkLabeledComponent<FieldText>* _phone1Field;
- OkLabeledComponent<FieldText>* _phone2Field;
- OkLabeledComponent<FieldText>* _faxField;
- OkLabeledComponent<FieldText>* _mobilePhoneField;
- OkLabeledComponent<FieldText>* _emailField;
-
- OkLabeledComponent<FieldText>* _addressLine1Field;
- OkLabeledComponent<FieldText>* _addressLine2Field;
- OkLabeledComponent<FieldText>* _cityField;
- OkLabeledComponent<FieldText>* _stateField;
- OkLabeledComponent<FieldText>* _zipField;
- OkLabeledComponent<FieldText>* _countryField;
-
- OkLabeledComponent<Notes>* _notes;
-
- OkLabeledComponent<Attributes>* _attributes;
-
- // Controls.
- ActiveToggle* _activeToggle;
-
- FirstBtn* _firstBtn;
- PrevBtn* _prevBtn;
- NextBtn* _nextBtn;
- LastBtn* _lastBtn;
- CloseBtn* _closeBtn;
-
- SrchBtn* _srchBtn;
-
- Boolean _dirty;
-
- void enableNavigationalBtns();
- void disableNavigationalBtns();
-
- void handleWmDeleteMessage() { hide(); }
-
- // Menu item callbacks.
- static void searchCB( Widget, XtPointer obj, XtPointer )
- { ((CardView *) obj)->_srchBtn->activate(); }
- static void saveCB( Widget, XtPointer obj, XtPointer )
- { ((CardView *) obj)->save( TRUE ); }
- static void deleteCB( Widget, XtPointer obj, XtPointer )
- { ((CardView *) obj)->deleteCard(); }
- static void newCB( Widget, XtPointer obj, XtPointer )
- { theListView->addCard((CardView *) obj); }
-
- static void printCB( Widget, XtPointer obj, XtPointer );
-
- static void closeCB( Widget, XtPointer obj, XtPointer )
- { ((CardView *) obj)->hide(); }
-
- static void insertFromFileCB( Widget, XtPointer obj, XtPointer )
- { ((CardView *) obj)->insertFromFile(); }
- static void saveToFileCB( Widget, XtPointer obj, XtPointer )
- { ((CardView *) obj)->saveToFile(); }
- static void clearNotesCB( Widget, XtPointer obj, XtPointer )
- { ((CardView *) obj)->clearNotes(); }
-
- };
-
- #endif
-